﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Projeto_Trucadores.Classes;
using System.Data;

namespace Projeto_Trucadores
{
    public partial class EditPrestador : System.Web.UI.Page
    {
        MyManager manager;

        protected void Page_Load(object sender, EventArgs e)
        {
            manager = new MyManager();
            if (!IsPostBack)
            {
                string sPId = Page.Request["PId"];
                if (string.IsNullOrEmpty(sPId))
                    RedirecionaPage();
                else
                {
                    Guid PId = Guid.Empty;
                    Guid.TryParse(sPId, out PId);

                    if (PId == Guid.Empty)
                        RedirecionaPage();
                    else
                        GetDados(PId);
                }
            }
        }

        private void GetDados(Guid PId)
        {
            string select = string.Format(@"SELECT nome, email, cpfcnpj, telefone1, telefone2, tipoprestacao, descricao
            FROM prestador
            WHERE prestadorid = '{0}'", PId);

            try
            {
                DataTable table = manager.ExecuteCommand(select);
                if (table.Rows.Count > 0)
                {
                    DataRow row = table.Rows[0];
                    txtNome.Text = Convert.ToString(row["nome"]);
                    txtEmail.Text = Convert.ToString(row["email"]);
                    txtCPFCNPJ.Text = Convert.ToString(row["cpfcnpj"]);
                    txtTelefone1.Text = Convert.ToString(row["telefone1"]);
                    txtTelefone2.Text = Convert.ToString(row["telefone2"]);
                    txtDescricao.Text = Convert.ToString(row["descricao"]);
                    dropTipoPrestacao.SelectedValue = Convert.ToString(row["tipoprestacao"]);
                }
                else
                {
                    RedirecionaPage();
                }
            }
            catch
            {
                string script = "<script>alert('Desculpe estamos com problema em nosso banco! Você será redirecionado para a página principal!'; location.href = 'default.aspx'; </script>";
                ClientScript.RegisterClientScriptBlock(GetType(), "Erro Banco", script);
            }
        }

        private void RedirecionaPage()
        {
            string script = "<script>alert('Cadastro não encontrado, você será redirecionado!'); location.href = 'Default.aspx'</script>";
            ClientScript.RegisterClientScriptBlock(GetType(), "Cadastro", script);
        }

        protected void btnOK_Click(object sender, EventArgs e)
        {
            if (CamposPreenchidos())
            {
                SalvarDados();
            }
            else
            {
                MensagemPreenchimento();
            }
        }

        private void MensagemPreenchimento()
        {
            string script = "<script>alert('Favor Preencher todos os campos com *!')</script>";
            ClientScript.RegisterClientScriptBlock(GetType(), "Preencher", script);
        }

        private void SalvarDados()
        {
            string update = string.Format(@"UPDATE prestador SET nome = '{0}', email = '{1}', cpfcnpj = '{2}', telefone1 = '{3}',
            telefone2 = '{4}', tipoprestacao = '{5}', descricao = '{6}' WHERE prestadorid = '{7}'", txtNome.Text, txtEmail.Text, txtCPFCNPJ.Text, txtTelefone1.Text,
            txtTelefone2.Text, dropTipoPrestacao.SelectedItem, txtDescricao.Text, Request.QueryString["PId"]);

            try
            {
                manager.ExecuteNonQuery(update);
            }
            catch
            {
                string script = "<script>alert('Desculpe não foi possível atualizar! Houve algum erro com o banco de dados! Favor tentar mais tarde!'</script>";
                ClientScript.RegisterClientScriptBlock(GetType(), "Erro Banco", script);
            }
        }

        private bool CamposPreenchidos()
        {
            if ((string.IsNullOrEmpty(txtNome.Text)) || (string.IsNullOrEmpty(txtEmail.Text)) || (string.IsNullOrEmpty(txtTelefone1.Text))
                || (string.IsNullOrEmpty(txtCPFCNPJ.Text)) || (string.IsNullOrEmpty(txtDescricao.Text)))
                return false;
            return true;
        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            string script = "<script>cancela()</script>";
            ClientScript.RegisterClientScriptBlock(GetType(), "Cancela", script);
        }
    }
}